<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="TingGe Blog Agile agile JavaScript NodeJS">
  <meta name="author" content="TingGe<505253293@163.com>">
  <title>听歌实验室</title>
  <link type="image/x-icon" rel="shortcut icon" href="https://avatars3.githubusercontent.com/u/4074517?v=3&s=40" />
  <link rel="stylesheet" type="text/css" href="/lib/bootstrap/dist/css/bootstrap.min.css" media="screen">
  <link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
  <link href="/css/landing-page.css" rel="stylesheet">
  <link href="/css/screenshots.css" rel="stylesheet">
  <style media="screen">
    #main {
      padding-top: 55px;
    }
  </style>
  <script type="text/javascript" src="/lib/jquery/dist/jquery.min.js"></script>
  <script type="text/javascript" src="/lib/html2canvas/dist/html2canvas.min.js"></script>
  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>
  <!-- Navigation -->
  <nav class="navbar navbar-default navbar-fixed-top topnav" role="navigation">
    <div class="container topnav">
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand topnav" href="/">
          <i class="fa fa-flask icon-3x" aria-hidden="true"></i> 听歌实验室
        </a>
      </div>
      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-right">
          <li>
            <a href="/html/js.html">JavaScript/NodeJS</a>
          </li>
          <li>
            <a href="/index.html#agile">敏捷/项目管理(Agile/PMP)</a>
          </li>
          <li>
            <a href="/html/cloud-bi.html">云商业智能(Cloud BI)</a>
          </li>
          <li>
            <a href="/html/iot.html">物联网(WoT/IoT)</a>
          </li>
          <li>
            <a href="/html/me.html">关于我</a>
          </li>
        </ul>
      </div>
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container -->
  </nav>
  <div id="main" class="container">
    <div class="row">
      <div id="article" class="col-md-9 content-container">
        <h1 id="devops">DevOps</h1>
<p>标签： DevOps、CI/CD、持续测试</p>
<h2 id="-">价值</h2>
<h3 id="-">聚焦功能交付</h3>
<p>自动化部署是任何一个强大的DevOps环境的核心，如果没有高效、可靠、可重复的软件部署系统，工程师就要把他们的关注点从功能交付转移到管理和调试部署过程（有些主次颠倒了！）   </p>
<p>当向一个面向服务的架构（也称为SOA：应用被拆分成按功能单元划分的一个个服务）迁移的时候，软件系统一般会划分成一个一个小的独立系统，相应的也会把开发团队组织成自治的team，每一个team完全负责服务的产品开发和功能特性，可以达到快速交付的目的；然而，随着部署动作的越来越频繁，软件部署过程很快会成为一个瓶颈；人肉部署不仅会降低发布效率并且容易引入人为bug，因此就需要通过自动化部署系统来解决这个问题。    </p>
<p>单台主机的部署是简单的，可以通过SSH连上主机，运行脚本即可；但是对于一个庞大而复杂的生产环境，比如各种web应用和服务，它们运行在横跨多个数据中心的成百上千台集群主机上，要频繁的进行安全而高效的部署并且保证服务一直可用并非易事，必须通过自动化部署系统来完成这个艰巨的任务。</p>
<h3 id="-">产品快速迭代</h3>
<p>在互联网时代，产品快速迭代的重要性不言而喻。</p>
<p>一套对项目流程管理和专项自动化提效工具，来支持项目的快速迭代发布，实现24小时持续集成、持续交付整个流程，不但可以提高研发效率，还能增强产品的竞争力！</p>
<p>从生态规划，到 CI/CD 流程，再到自动化测试的整个技术实现过程，深入了解研发提效的迫切性和重要性，以及具体实现的一些思路。</p>
<h2 id="-">参考</h2>
<ul>
<li><a href="https://devops-research.com/">DevOps Research and Assessment</a></li>
<li><a href="http://www.infoq.com/cn/articles/2018-state-of-devops">2018年《DevOps 现状报告》新鲜出炉：行业脉动与团队发展指导一览</a></li>
</ul>

      </div>
      <div class="col-md-3" style="padding-top:20px;">
        <iframe src="http://githubbadge.appspot.com/tingge?a=0" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder="0"></iframe>
      </div>
    </div>
  </div>
  <a id="html2canvas" title="截图下载-快照">&nbsp;</a>
  <script src="/lib/bootstrap/dist/js/bootstrap.min.js"></script>
  <script src="/js/article.js" charset="utf-8"></script>
  <!-- justice.js https://github.com/okor/justice  -->
  <script src="/lib/justice.min.js" charset="utf-8"></script>
  <!-- instantclick -->
  <script src="/lib/instantclick.js" charset="utf-8"></script>
  <script type="text/javascript" data-no-instant>
    Justice.init();
  </script>
</body>

</html>
